package abs.web.jsf;

import abs.dao.TipoCuentasDAO;

import abs.domain.TipoCuentas;

import abs.service.TipoCuentasService;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring Component that handles CRUD requests for TipoCuentas entities
 * 
 */
@Scope("session")
@Component("TipoCuentasComponent")
public class TipoCuentasComponentImpl implements TipoCuentasComponent {

	/**
	 * Data type variable that provides CRUD operations for TipoCuentas entities
	 * 
	 */
	private TipoCuentas tipocuentas;

	/**
	 * DAO injected by Spring that manages TipoCuentas entities
	 * 
	 */
	@Autowired
	private TipoCuentasDAO tipoCuentasDAO;

	/**
	 * Service injected by Spring that provides CRUD operations for TipoCuentas entities
	 * 
	 */
	@Autowired
	private TipoCuentasService tipoCuentasService;

	/** 
	 */
	public TipoCuentasComponentImpl() {
	}

	/**
	 * Show all TipoCuentas entities
	 * 
	 */
	@Override
	@Transactional
	public List<TipoCuentas> listTipoCuentass() {
		return new java.util.ArrayList<TipoCuentas>(tipoCuentasService.loadTipoCuentass());
	}

	/**
	 * Getter for variable TipoCuentas
	 * 
	 */
	@Override
	@Transactional
	public TipoCuentas getTipocuentas() {
		return tipocuentas;
	}

	/**
	 * Select an existing TipoCuentas entity
	 * 
	 */
	@Override
	@Transactional
	public String selectTipoCuentas(String co020tipoKey) {
		tipocuentas = tipoCuentasDAO.findTipoCuentasByPrimaryKey(co020tipoKey);

		return "/jsf/tipocuentas/viewTipoCuentas.xhtml";
	}

	/**
	 * Edit an existing TipoCuentas entity
	 * 
	 */
	@Override
	@Transactional
	public String editTipoCuentas(String co020tipoKey) {
		tipocuentas = tipoCuentasDAO.findTipoCuentasByPrimaryKey(co020tipoKey);

		return "/jsf/tipocuentas/editTipoCuentas.xhtml";
	}

	/**
	 * Save an existing TipoCuentas entity
	 * 
	 */
	@Override
	@Transactional
	public String saveTipoCuentas(TipoCuentas tipocuentas) {
		tipoCuentasService.saveTipoCuentas(tipocuentas);
		return "/jsf/tipocuentas/listTipoCuentass.xhtml";
	}

	/**
	 * Create a new TipoCuentas entity
	 * 
	 */
	@Override
	@Transactional
	public String newTipoCuentas() {
		tipocuentas = new TipoCuentas();

		return "/jsf/tipocuentas/createTipoCuentas.xhtml";
	}

	/**
	 * Select the TipoCuentas entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Override
	@Transactional
	public String confirmDeleteTipoCuentas(String co020tipoKey) {
		tipocuentas = tipoCuentasDAO.findTipoCuentasByPrimaryKey(co020tipoKey);

		return "/jsf/tipocuentas/deleteTipoCuentas.xhtml";
	}

	/**
	 * Delete an existing TipoCuentas entity
	 * 
	 */
	@Override
	@Transactional
	public String deleteTipoCuentas(String co020tipoKey) {
		TipoCuentas tipocuentas = tipoCuentasDAO.findTipoCuentasByPrimaryKey(co020tipoKey);
		tipoCuentasService.deleteTipoCuentas(tipocuentas);
		return "/jsf/tipocuentas/listTipoCuentass.xhtml";
	}

}
